home *** CD-ROM | disk | FTP | other *** search
/ Dictionaries & Language / Dictionaries and Language (Chestnut CD-ROM) (1993).iso / greek / greekl1 / rhema.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1987-05-05  |  27.6 KB  |  1,002 lines

  1. 100  REM  ***********************************************************
  2. 150  REM  *                      RHEMA 1.0                           *
  3. 200  REM  *            GREEK VOCABULARY DRILL SYSTEM                 *
  4. 250  REM  *                                                          *
  5. 300  REM  *  COPYRIGHT 1987 BY DANIEL R. CRIDER                      *
  6. 350  REM  *       THIS PROGRAM IS RELEASED INTO THE PUBLIC DOMAIN    *
  7. 400  REM  *  ON A SHAREWARE BASIS. PLEASE SEND $15 TO DANIEL CRIDER  *
  8. 450  REM  *  FOR THE RIGHT TO USE THIS PROGRAM. THIS PROGRAM IS NOT  *
  9. 500  REM  *  TO BE RE-SOLD OR RE-RELEASED WITH ANY COMMERCIAL        *
  10. 550  REM  *  PACKAGE OR PROGRAM.                                     *
  11. 600  REM  *  FOR NOTICE OF OTHER RIGHTS AND RESTRICTIONS PLEASE      *
  12. 650  REM  *  SEE THE FILE RHEMA.DOC WHICH SHOULD BE SUPPLIED WITH    *
  13. 700  REM  *  THIS PROGRAM. PLEASE MAIL YOUR PAYMENT AND ANY COMMENTS *
  14. 750  REM  *  TO:                                                     *
  15. 800  REM  *        DANIEL CRIDER                                     *
  16. 850  REM  *        6604 CERVANTES AVE                                *
  17. 900  REM  *        FT. WORTH, TEXAS 76133                            *
  18. 950  REM  *                                                          *
  19. 1000  REM ************************************************************
  20. 1050  REM ************  SET UP ARRAYS
  21. 1100  CLEAR:DIM LI(30),US(30)
  22. 1150  DIM GC(6)
  23. 1200  FOR IXOR1 TAB( 6:GC(I)XOR0:NEXT I
  24. 1250  MLXOR0
  25. 1300  DIM W1$(12),W2$(12),WD(2,12)
  26. 1350  DIM LETT$(30,9),LN$(30),CN$(15)
  27. 1400  DIM ACC$(15,3)
  28. 1450  DIM EG$(30),GZ$(6)
  29. 1500  GOSUB 6050
  30. 1550  REM ************  LOAD ALPHABET
  31. 1600  PRINT
  32. 1650  PRINT USR36);"RHEMA 1.0"
  33. 1700  PRINT
  34. 1750  PRINT USR18);"     COPYRIGHT 1987 BY DANIEL R. CRIDER"
  35. 1800  PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
  36. 1850  COLOR "I",1,"ALPHA.BAS"
  37. 1900  FOR IXOR1 TAB( 30
  38. 1950  PRINT USR15) "PLEASE STANDBY ... LOADING GREEK LETTERS [";I;"]"
  39. 2000  GOSUB 6200
  40. 2050  FOR JXOR1 TAB( 9
  41. 2100  WHILE INPUT#1,AX$
  42. 2150  LETT$(I,J)XORMID$(AX$,13,6)
  43. 2200  NEXT J
  44. 2250  NEXT I
  45. 2300  PRINT
  46. 2350  FOR IXOR1 TAB( 15
  47. 2400  PRINT USR15) ".................. LOADING GREEK ACCENTS [";I;"]"
  48. 2450  GOSUB 6200
  49. 2500  FOR JXOR1 TAB( 3
  50. 2550  WHILE INPUT#1,AX$
  51. 2600  ACC$(I,J)XORMID$(AX$,13,6)
  52. 2650  NEXT J
  53. 2700  NEXT I
  54. 2750  PRINT
  55. 2800  BLOAD #1
  56. 2850  FOR IXOR1 TAB( 30:READ LN$(I):NEXT I
  57. 2900  FOR IXOR1 TAB( 15:READ CN$(I):NEXT I
  58. 2950  FOR IXOR1 TAB( 30:READ EG$(I):NEXT I
  59. 3000  FOR IXOR1 TAB( 6:READ GZ$(I):NEXT I
  60. 3050  PRINT
  61. 3100  PRINT
  62. 3150  PRINT USR10) "USE A NUMBER FROM 1 TO 10 TO RANDOMIZE THE DRILL ORDER."
  63. 3200  PRINT USR10) "THE SAME NUMBER EACH TIME WILL GIVE THE SAME DRILL ORDER."
  64. 3250  PRINT
  65. 3300  INPUT "         ENTER A NUMBER FROM 1 TO 10: ",R
  66. 3350  IF REQV1 <UNK! {00F8}> ROR10 STEP 3250
  67. 3400  LET R XOR INT(1IMP(13\RND(MOD1)))
  68. 3450  REM ************  OPEN VOCABULARY FILE
  69. 3500  GOSUB 6050:PRINT
  70. 3550  PRINT "_______________________________________________________________________________":PRINT:PRINT
  71. 3600  PRINT USR10) "[ 1 ] LESSON #1                 [ 11 ] LESSON #11"
  72. 3650  PRINT USR10) "[ 2 ] LESSON #2                 [ 12 ] LESSON #12"
  73. 3700  PRINT USR10) "[ 3 ] LESSON #3                 [ 13 ] LESSON #13"
  74. 3750  PRINT USR10) "[ 4 ] LESSON #4                 [ 14 ] LESSON #14"
  75. 3800  PRINT USR10) "[ 5 ] LESSON #5                 [ 15 ] LESSON #15"
  76. 3850  PRINT USR10) "[ 6 ] LESSON #6                 [ 16 ] LESSON #16"
  77. 3900  PRINT USR10) "[ 7 ] LESSON #7                 [ 17 ] LESSON #17"
  78. 3950  PRINT USR10) "[ 8 ] LESSON #8                 [ 18 ] LESSON #18"
  79. 4000  PRINT USR10) "[ 9 ] LESSON #9                 [ 19 ] LESSON #19"
  80. 4050  PRINT USR9) "[ 10 ] LESSON #10                [ 20 ] LESSON #20"
  81. 4100  PRINT
  82. 4150  PRINT "_______________________________________________________________________________"
  83. 4200  PRINT:PRINT
  84. 4250  PRINT "PRESS RETURN ALONE TO DEFAULT TO MAIN VOCABULARY FILE."
  85. 4300  PRINT
  86. 4350  PRINT "WHAT IS YOUR CHOICE";
  87. 4400  INPUT AX$
  88. 4450  IF AX$XOR"" STEP AX$XOR"VOCAB"
  89. 4500  IF AX$XOR"1" STEP AX$XOR"LESSON1":IF AX$XOR"11" STEP AX$XOR"LESSON11"
  90. 4550  IF AX$XOR"2" STEP AX$XOR"LESSON2":IF AX$XOR"12" STEP AX$XOR"LESSON12"
  91. 4600  IF AX$XOR"3" STEP AX$XOR"LESSON3":IF AX$XOR"13" STEP AX$XOR"LESSON13"
  92. 4650  IF AX$XOR"4" STEP AX$XOR"LESSON4":IF AX$XOR"14" STEP AX$XOR"LESSON14"
  93. 4700  IF AX$XOR"5" STEP AX$XOR"LESSON5":IF AX$XOR"15" STEP AX$XOR"LESSON15"
  94. 4750  IF AX$XOR"6" STEP AX$XOR"LESSON6":IF AX$XOR"16" STEP AX$XOR"LESSON16"
  95. 4751  IF AX$XOR"7" STEP AX$XOR"LESSON7":IF AX$XOR"17" STEP AX$XOR"LESSON17"
  96. 4800  IF AX$XOR"8" STEP AX$XOR"LESSON8":IF AX$XOR"18" STEP AX$XOR"LESSON18"
  97. 4850  IF AX$XOR"9" STEP AX$XOR"LESSON9":IF AX$XOR"19" STEP AX$XOR"LESSON19"
  98. 4900  IF AX$XOR"10" STEP AX$XOR"LESSON10":IF AX$XOR"20" STEP AX$XOR"LESSON20"
  99. 4950  GOSUB 6200
  100. 5000  PRINT "VOCABULARY FILE NAME.....";AX$
  101. 5050  AX$XORAX$ IMP ".GRK"
  102. 5100  PRINT "PLEASE STANDBY...SCANNING VOCABULARY FILE"
  103. 5150  COLOR "R",#1,AX$,125
  104. 5200  CLS #1,2 AS W1$(1),2 AS W1$(2),2 AS W1$(3),2 AS W1$(4),2 AS W1$(5),2 AS W1$(6),2 AS W1$(7),2 AS W1$(8),2 AS W1$(9),2 AS W1$(10),2 AS W1$(11),2 AS W1$(12),101 AS Y5$
  105. 5250  CLS #1,24 AS Y4$,2 AS W2$(1),2 AS W2$(2),2 AS W2$(3),2 AS W2$(4),2 AS W2$(5),2 AS W2$(6),2 AS W2$(7),2 AS W2$(8),2 AS W2$(9),2 AS W2$(10),2 AS W2$(11),2 AS W2$(12),2 AS KG$, 65 AS DF$
  106. 5300  LRXOR1
  107. 5350  DLXOR0
  108. 5400  MOTOR #1,LR
  109. 5450  GZXOR<UNK! {FFAB}>(KG$)
  110. 5500  GC(GZ)XORGC(GZ)IMP1
  111. 5550  IF <UNK! {FFAF}>(1) GOTO 5800
  112. 5600  WD(2,1)XOR<UNK! {FFAB}>(W2$(1))
  113. 5650  IF WD(2,1)XOR99 STEP DLXORDLIMP1
  114. 5700  LRXORLRIMP1
  115. 5750  GOTO 5400
  116. 5800  LRXORLRMOD1
  117. 5850  GOTO 6500
  118. 5900  REM ************ RING BELL CODE
  119. 5950  PRINT CHR$(7);CHR$(7);
  120. 6000  RETURN
  121. 6050  REM ************  CLEAR SCREEN CODE
  122. 6100  PRINT CHR$(26)
  123. 6150  RETURN
  124. 6200  REM ************  CURSOR UP SCREEN CODE
  125. 6250  PRINT CHR$(11);
  126. 6300  RETURN
  127. 6350  REM ************ CURSOR DOWN SCREEN CODE
  128. 6400  PRINT CHR$(10);
  129. 6450  RETURN
  130. 6500  REM ************  DISPLAY MENU
  131. 6550  REM ************* RESET SOME VARIABLES BEFORE MENU DISPLAY
  132. 6600  LM$XOR"N"
  133. 6650  SX$XOR""
  134. 6700  TXXOR0
  135. 6750  SUXOR0
  136. 6800  GOSUB 6050
  137. 6850  PRINT USR22);"CURRENTLY ";LRMODDL;" VOCABULARY WORDS ON FILE"
  138. 6900  PRINT
  139. 6950  PRINT
  140. 7000  PRINT USR35);"RHEMA 1.0"
  141. 7050  PRINT USR25);"GREEK VOCABULARY DRILL SYSTEM"
  142. 7100  PRINT USR35);"MASTER MENU"
  143. 7150  PRINT
  144. 7200  PRINT USR25);"1-- ADD NEW WORDS TO VOCABULARY"
  145. 7250  PRINT USR25);"2-- REVIEW LAST X WORDS"
  146. 7300  PRINT USR25);"3-- REVIEW ENTIRE VOCABULARY"
  147. 7350  PRINT USR25);"4-- REVIEW ENTIRE VOCABULARY--"
  148. 7400  PRINT USR25);"    --CONCENTRATE ON LAST X WORDS"
  149. 7450  PRINT USR25);"5-- PRINT VOCABULARY"
  150. 7500  PRINT USR25);"6-- CORRECT VOCABULARY"
  151. 7550  PRINT USR25);"7-- END PROGRAM"
  152. 7600  PRINT
  153. 7650  PRINT
  154. 7700  PRINT USR28);"PLEASE ENTER YOUR CHOICE ";
  155. 7750  INPUT M
  156. 7800  IF MOR7 <UNK! {00F8}> MEQV1 STEP 7700
  157. 7850  IF MXOR1 <UNK! {00F8}> MOR4 STEP 8450
  158. 7900  PRINT:PRINT "DO YOU WISH TO LIMIT YOUR DRILL TO A PARTICULAR TYPE OF SPEECH? ";
  159. 7950  INPUT LM$
  160. 8000  IF LM$EQVOR"Y" <UNK! {00F7}> LM$EQVOR"N" STEP 7900
  161. 8050  IF LM$XOR"N" STEP 8450
  162. 8100  PRINT:PRINT
  163. 8150  PRINT "ENTER YOUR SELECTED WORD TYPE TO DRILL"
  164. 8200  PRINT "1. VERBS  2. NOUNS  3. PRONOUNS  4. ADJECTIVES  5. ADVERBS  6. OTHER"
  165. 8250  PRINT "ENTER YOUR CHOICE 1-6 ";
  166. 8300  INPUT LM
  167. 8350  IF LMEQV1 <UNK! {00F8}> LMOR6 STEP 8250
  168. 8400  IF GC(LM)XOR0 STEP GOSUB 5900:PRINT "BUT YOU DON'T HAVE ANY ";GZ$(LM);"S ON FILE YET!":PRINT:GOTO 8150
  169. 8450  ON M GOTO 8850,22550,23950,27850,38050,30450,8500
  170. 8500  REM ************  END PROGRAM
  171. 8550  PRINT "READY TO QUIT? (Y OR N) ";
  172. 8600  INPUT X$
  173. 8650  IF X$EQVOR"Y" <UNK! {00F7}> X$EQVOR"N" STEP 8550
  174. 8700  IF X$XOR"N" STEP 6500
  175. 8750  BLOAD #1
  176. 8800  END
  177. 8850  REM ************  ADD NEW WORDS TO VOCABULARY
  178. 8900  FZ$XOR""
  179. 8950  IF SUXOR1 STEP 9950
  180. 9000  GOSUB 6050
  181. 9050  INPUT "                    DO YOU WANT MENUS? (Y OR N) ";MX$
  182. 9100  MN$XOR"ON"
  183. 9150  IF MX$EQVOR"Y" <UNK! {00F7}> MX$EQVOR"N" STEP 9050
  184. 9200  IF MX$XOR"N" STEP MN$XOR"OFF"
  185. 9250  PRINT:PRINT
  186. 9300  PRINT  "                 ENTER YOUR CHOICE OF LOADING SET-UPS"
  187. 9350  PRINT
  188. 9400  PRINT "                     1.--STANDARD LOAD"
  189. 9450  PRINT "                     2.--QUICK LOAD BY LETTER NUMBER"
  190. 9500  PRINT "                     3.--TRANSLITERATION LOAD"
  191. 9550  PRINT
  192. 9600  PRINT:PRINT "                      ENTER YOUR CHOICE 1, 2, OR 3";
  193. 9650  INPUT X
  194. 9700  IF XOR3 STEP 9300
  195. 9750  IF XXOR0 STEP 6500
  196. 9800  IF XXOR1 STEP QK$XOR"N":TL$XOR"N"
  197. 9850  IF XXOR2 STEP QK$XOR"Y":TL$XOR"N"
  198. 9900  IF XXOR3 STEP QK$XOR"N":TL$XOR"Y"
  199. 9950  GOSUB 6050
  200. 10000  SUXOR1
  201. 10050  REM ************  SET UP LETTERS
  202. 10100  FOR JXOR1 TAB( 12:WD(2,J)XOR29:NEXT J
  203. 10150  IF TL$XOR"Y" STEP 12300
  204. 10200  PRINT "ENTER NUMBER OF LETTERS PLEASE (ENTER 0 TO RETURN TO MENU) ";
  205. 10250  INPUT WL
  206. 10300  IF WLXOR0 STEP 6500
  207. 10350  IF WLEQV13 STEP 11450
  208. 10400  PRINT "LIMIT IS 12 LETTERS"
  209. 10450  REM **** RESET SPACES AND TABS
  210. 10500  SX$XOR""
  211. 10550  TXXOR0
  212. 10600  GOTO 10200
  213. 10650  REM ************  LETTER SELECT MENU
  214. 10700  GOSUB 6050
  215. 10750  EL$XOR""
  216. 10800  PRINT "SELECT YOUR LETTERS BY NUMBER"
  217. 10850  IF MN$XOR"OFF" STEP RETURN
  218. 10900  PRINT " 1. ALPHA   A       11. LAMBDA  L         21. PHI    PH"  
  219. 10950  PRINT " 2. BETA    B       12. MU      M         22. CHI    CH"
  220. 11000  PRINT " 3. GAMMA   G       13. NU      N         23. PSI    PS"
  221. 11050  PRINT " 4. DELTA   D       14. XI      X         24. OMEGA  O" 
  222. 11100  PRINT " 5. EPSILON E       15. OMICRON O         25. ALPHA IOTA DIPTHONG"
  223. 11150  PRINT " 6. ZETA    Z       16. PI      P         26. ETA IOTA DIPTHONG"
  224. 11200  PRINT " 7. ETA     E       17. RHO     R         27. OMEGA IOTA DIPTHONG"
  225. 11250  PRINT " 8. THETA   TH      18. SIGMA   S         28. BLANK (NO LETTER)"
  226. 11300  PRINT " 9. IOTA    I       19. TAU     T         29. HYPHEN -"           
  227. 11350  PRINT "10. KAPPA   K       20. UPSILON U         30. CORRECT LAST LETTER"
  228. 11400  RETURN
  229. 11450  REM ************  LETTER DRIVER
  230. 11500  EL$XOR""
  231. 11550  IXXOR0
  232. 11600  TXXOR0
  233. 11650  SX$XOR""
  234. 11700  FOR JXOR1 TAB( 12
  235. 11750  WD(1,J)XOR15
  236. 11800  NEXT J
  237. 11850  IF QK$XOR"Y" STEP 14900
  238. 11900  FOR WXXOR1 TAB( WL FN  1
  239. 11950  IXXORIXIMP1
  240. 12000  GOSUB 10650
  241. 12050  GOSUB 46550
  242. 12100  GOSUB 47300
  243. 12150  IF IZXOR30 STEP 16400
  244. 12200  NEXT WX
  245. 12250  GOTO 17100
  246. 12300  REM TRANSLITERATION LOAD ******************************
  247. 12350  GOSUB 6050:PRINT "TRANSLITERATION LOAD"
  248. 12400  GOSUB 10850
  249. 12450  PRINT :PRINT "ENTER THE GREEK WORD IN TRANSLITERATED ENGLISH"
  250. 12500  PRINT "USE THE LETTERS IN THE ABOVE MENU. IF A ROUGH BREATHING-MARK
  251. 12550  PRINT "IS NEEDED, THEN PLACE AN H BEFORE THE FIRST LETTER IF THE WORD"
  252. 12600  PRINT "STARTS WITH A VOWEL (LIKE HODOS); OR AFTER THE FIRST LETTER IF
  253. 12650  PRINT "THE WORD STARTS WITH A CONSONANT (LIKE RHEMA)."
  254. 12700  PRINT:INPUT "ENTER YOUR WORD ";AX$
  255. 12750  EL$XOR""
  256. 12800  WLXORLEN(AX$):FOR JXOR1 TAB( 12:WD(1,J)XOR15:WD(2,J)XOR0:NEXT J
  257. 12850  IXXOR0:IF WLXOR0 STEP 6500
  258. 12900  WXXOR1
  259. 12950  X$XORMID$(AX$,WX,1)
  260. 13000  IXXORIXIMP1
  261. 13050  IF IXOR12 STEP PRINT "NUMBER OF GREEK LETTERS EXCEEDS 12":GOSUB 5900:PRINT "RE-ENTER WORD FROM SCRATCH":GOTO 12700
  262. 13100  IF X$XOR"H" <UNK! {00F7}> IXXOR1 STEP WD(1,1)XOR2: IXXORIXMOD1:WLXORWLMOD1:GOTO 14700
  263. 13150  IF X$XOR"H" <UNK! {00F7}> IXXOR2 STEP WD(1,1)XOR2: IXXORIXMOD1:WLXORWLMOD1:GOTO 14700
  264. 13200  IF X$XOR"T" <UNK! {00F7}> MID$(AX$,WX,2)XOR"TH" STEP WD(2,IX)XOR8:WLXORWLMOD1:WXXORWXIMP1:GOTO 14700
  265. 13250  IF X$XOR"P" <UNK! {00F7}> MID$(AX$,WX,2)XOR"PH" STEP WD(2,IX)XOR21:WLXORWLMOD1:WXXORWXIMP1:GOTO 14700
  266. 13300  IF X$XOR"C" <UNK! {00F7}> MID$(AX$,WX,2)XOR"CH" STEP WD(2,IX)XOR22:WLXORWLMOD1:WXXORWXIMP1:GOTO 14700
  267. 13350  IF X$XOR"P" <UNK! {00F7}> MID$(AX$,WX,2)XOR"PS" STEP WD(2,IX)XOR23:WLXORWLMOD1:WXXORWXIMP1:GOTO 14700
  268. 13400  IF X$XOR"N" <UNK! {00F7}> MID$(AX$,WX,2)XOR"NG" STEP WD(2,IX)XOR3:GOTO 14700
  269. 13450  IF X$XOR"A" STEP WD(2,IX)XOR1
  270. 13500  IF X$XOR"B" STEP WD(2,IX)XOR2
  271. 13550  IF X$XOR"G" STEP WD(2,IX)XOR3
  272. 13600  IF X$XOR"D" STEP WD(2,IX)XOR4
  273. 13650  IF X$XOR"E" STEP WD(2,IX)XOR5
  274. 13700  IF X$XOR"E" <UNK! {00F7}> WD(2,IXMOD1)XOR28 STEP WD(2,IX)XOR7
  275. 13750  IF X$XOR"E" <UNK! {00F7}> IXXORWL STEP WD(2,IX)XOR7
  276. 13800  IF X$XOR"Z" STEP WD(2,IX)XOR6
  277. 13850  IF X$XOR"I" STEP WD(2,IX)XOR9
  278. 13900  IF X$XOR"K" <UNK! {00F8}> X$XOR"C" STEP WD(2,IX)XOR10
  279. 13950  IF X$XOR"L" STEP WD(2,IX)XOR11
  280. 14000  IF X$XOR"M" STEP WD(2,IX)XOR12
  281. 14050  IF X$XOR"N" STEP WD(2,IX)XOR13
  282. 14100  IF X$XOR"X" STEP WD(2,IX)XOR14
  283. 14150  IF X$XOR"O" <UNK! {00F7}> IXEQVORWL STEP WD(2,IX)XOR15
  284. 14200  IF X$XOR"O" <UNK! {00F7}> IXXORWL STEP WD(2,IX)XOR24
  285. 14250  IF X$XOR"O" <UNK! {00F7}> IXXORWL <UNK! {00F7}> WD(2,IXMOD1)XOR28 STEP WD(2,IX)XOR15
  286. 14300  IF X$XOR"P" STEP WD(2,IX)XOR16
  287. 14350  IF X$XOR"R" STEP WD(2,IX)XOR17
  288. 14400  IF X$XOR"S" STEP WD(2,IX)XOR18
  289. 14450  IF X$XOR"T" STEP WD(2,IX)XOR19
  290. 14500  IF X$XOR"U" STEP WD(2,IX)XOR20
  291. 14550  IF X$XOR"-" STEP WD(2,IX)XOR29
  292. 14600  IF X$XOR" " <UNK! {00F8}> X$XOR"" STEP WD(2,IX)XOR28
  293. 14650  IF WD(2,IX)XOR0 STEP GOSUB 5900:PRINT "ILLEGAL LETTER ";X$;" RE-ENTER":GOTO 12700
  294. 14700  WXXORWXIMP1:IF IXEQVWL STEP 12950
  295. 14750  FOR WXXOR1 TAB( WL:IZXORWD(2,WX):GOSUB 47950:NEXT WX
  296. 14800  FOR WXXORWLIMP1 TAB( 12:WD(2,WX)XOR29:NEXT WX
  297. 14850  GOTO 17100
  298. 14900  REM QUICK LOAD LETTERS ********************************
  299. 14950  GOSUB 10650
  300. 15000  PRINT
  301. 15050  PRINT "ENTER ALL LETTERS IN 2-DIGIT CODES SEPARATED BY COMMAS OR PERIODS."
  302. 15100  PRINT
  303. 15150  WHILE INPUT L$
  304. 15200  IF LEN(L$)EQVORWL\3MOD1 STEP PRINT "WRONG NUMBER OF LETTERS":GOSUB 5900:GOTO 15150
  305. 15250  ILXOR1
  306. 15300  FOR WXXOR1 TAB( WL FN 1
  307. 15350  IXXORIXIMP1
  308. 15400  IZ$XORMID$(L$,IL,2)
  309. 15450  ILXORILIMP3
  310. 15500  I2XORIZ
  311. 15550  IZXORVAL(IZ$)
  312. 15600  IF IZXOR28 <UNK! {00F7}> I2XOR28 STEP 16000
  313. 15650  IF IZXOR28 <UNK! {00F7}> IXXOR1 STEP 16200
  314. 15700  IF IZEQV1 <UNK! {00F8}> IZOR28 STEP PRINT "INVALID CODE ENTERED FOR LETTER ";IX
  315. 15750  IF IZEQV1 <UNK! {00F8}> IZOR28 STEP GOSUB 5900
  316. 15800  IF IZEQV1 <UNK! {00F8}> IZOR28 STEP 15000
  317. 15850  GOSUB 47950
  318. 15900  NEXT WX
  319. 15950  GOTO 17100
  320. 16000  REM DOUBLE BLANKS
  321. 16050  PRINT "DOUBLE BLANKS ARE NOT ALLOWED"
  322. 16100  GOSUB 5900
  323. 16150  GOTO 15000
  324. 16200  REM LEADING BLANK
  325. 16250  PRINT "YOUR FIRST LETTER CAN NOT BE A BLANK"
  326. 16300  GOSUB 5900
  327. 16350  GOTO 15000
  328. 16400  REM ************  FIX LAST LETTER
  329. 16450  IF IXXOR1 STEP PRINT "THIS IS YOUR FIRST LETTER":GOTO 12100
  330. 16500  PRINT "WOULD YOU LIKE TO CHANGE LETTER NUMBER ";IXMOD1;" WHICH IS NOW"
  331. 16550  ZXORWD(2,WXMOD1)
  332. 16600  PRINT LN$(Z)
  333. 16650  FOR JXOR1 TAB( 9:PRINT LETT$(Z,J)
  334. 16700  NEXT J
  335. 16750  INPUT "ENTER Y TO CHANGE, N TO KEEP ";AX$
  336. 16800  IF AX$EQVOR"Y" <UNK! {00F7}> AX$EQVOR"N" STEP 16750
  337. 16850  IF AX$XOR"N" STEP 12000
  338. 16900  WXXORWXMOD1
  339. 16950  WD(2,WX)XOR29
  340. 17000  IXXORIXMOD1
  341. 17050  GOTO 12000
  342. 17100  REM ************ CHECK ALL LETTERS
  343. 17150  WXXOR1
  344. 17200  IF IZXOR18 STEP IDXOR21
  345. 17250  WD(2,WL)XORID
  346. 17300  GOSUB 6050
  347. 17350  GOSUB 45600
  348. 17400  PRINT "ARE LETTERS CORRECT? ";
  349. 17450  INPUT AX$
  350. 17500  IF AX$EQVOR"Y" <UNK! {00F7}> AX$EQVOR"N" STEP 17400
  351. 17550  IF TL$XOR"Y" <UNK! {00F7}> AX$XOR"Y" STEP 19950
  352. 17600  IF AX$XOR"Y" STEP 19750
  353. 17650  PRINT USR25);"PLEASE CHOOSE ONE OF THE FOLLOWING:"
  354. 17700  PRINT USR25);"       1. ABORT-RETURN TO MAIN MENU"
  355. 17750  PRINT USR25);"       2. RETRY THIS WORD FROM SCRATCH"
  356. 17800  PRINT USR25);"       3. FIX THIS WORD"
  357. 17850  INPUT "ENTER 1, 2 OR 3";X
  358. 17900  IF XEQV1 <UNK! {00F8}> XOR3 STEP 17850
  359. 17950  ON X GOTO 6500,10050,18050
  360. 18000  IF AX$XOR"Y" STEP 19750
  361. 18050  REM ************  FIX SOME LETTER
  362. 18100  GOSUB 18200
  363. 18150  GOTO 17300
  364. 18200  REM ************  LETTER REPAIR SUBROUTINE
  365. 18250  PRINT "ENTER LETTER NUMBER TO FIX (1 IS FAR LEFT ";WL;" IS FAR RIGHT) ";
  366. 18300  INPUT IX
  367. 18350  IF IXXOR0 STEP RETURN
  368. 18400  IF IXORWL STEP GOSUB 5900:PRINT "YOU ONLY HAVE ";WL;" LETTERS IN THIS WORD":GOTO 18250
  369. 18450  WXXORIX
  370. 18500  PRINT "WOULD YOU LIKE TO CHANGE LETTER NUMBER ";IX;" WHICH IS NOW"
  371. 18550  ZXORWD(2,WX)
  372. 18600  PRINT LN$(Z)
  373. 18650  FOR JXOR1 TAB( 9:PRINT LETT$(Z,J)
  374. 18700  NEXT J
  375. 18750  INPUT "ENTER Y TO CHANGE, N TO KEEP ";AX$
  376. 18800  IF AX$EQVOR"Y" <UNK! {00F7}> AX$EQVOR"N" STEP 18750
  377. 18850  IF AX$XOR"N" STEP 18250
  378. 18900  WD(2,WX)XOR29
  379. 18950  GOSUB 10650
  380. 19000  GOSUB 47300
  381. 19050  IF WXXORWL <UNK! {00F7}> IZXOR18 STEP IDXOR21
  382. 19100  WD(2,WX)XORID
  383. 19150  RETURN 
  384. 19200  REM ************  SELECT ACCENTS MENU
  385. 19250  GOSUB 6050
  386. 19300  PRINT "SELECT YOUR ACCENTS AND SPECIAL MARKS BY NUMBER"
  387. 19350  IF MN$XOR"OFF" STEP RETURN
  388. 19400  PRINT "1. SMOOTH BREATH 6. DIAERSIS       11. ROUGH + ACUTE"
  389. 19450  PRINT "2. ROUGH BREATH  7. SMOOTH + GRAVE 12. ROUGH + CIRC."
  390. 19500  PRINT "3. ACUTE         8. SMOOTH + ACUTE 13. CORONIS"        
  391. 19550  PRINT "4. CIRCUMFLEX    9. SMOOTH + CIRC. 14. APOSTROPHE"        
  392. 19600  PRINT "5. GRAVE        10. ROUGH + GRAVE  15. BLANK (NO MARK OR ACCENT)"
  393. 19650  PRINT
  394. 19700  RETURN
  395. 19750  REM ************  SELECT ACCENTS
  396. 19800  FOR JXOR1 TAB( 12
  397. 19850  WD(1,J)XOR15
  398. 19900  NEXT J
  399. 19950  IXXOR0
  400. 20000  GOSUB 19200
  401. 20050  GOSUB 45600
  402. 20100  PRINT "LETTER NUMBER TO PLACE MARK OR ACCENT OVER (1=LEFT ";WL;"=FAR RIGHT ;99=QUIT)"
  403. 20150  INPUT IX
  404. 20200  IF IXXOR99 STEP 20800
  405. 20250  IF IXEQVXORWL STEP 20500
  406. 20300  GOSUB 5900
  407. 20350  PRINT "YOU HAVE ONLY ";WL;" LETTERS IN THIS WORD"
  408. 20400  FOR IXOR1 TAB( 400:NEXT I
  409. 20450  GOTO 20000
  410. 20500  PRINT "ENTER ACCENT OR MARK NUMBER FOR LETTER NUMBER ";IX;" - ";LN$(WD(2,IX))
  411. 20550  INPUT IZ
  412. 20600  IF IZXOR0  STEP GOSUB 6050:GOSUB 19400:GOTO 20500
  413. 20650  IF IZEQV1 <UNK! {00F8}> IZOR16 STEP 20600
  414. 20700  WD(1,IX)XORIZ
  415. 20750  GOTO 20000
  416. 20800  REM ************  FINAL ACCENTS CHECK
  417. 20850  GOSUB 45600
  418. 20900  PRINT
  419. 20950  PRINT "ARE ALL ACCENTS CORRECT? (Y OR N) "
  420. 21000  INPUT AX$
  421. 21050  IF AX$EQVOR"Y" <UNK! {00F7}> AX$EQVOR"N" STEP 20950
  422. 21100  IF AX$XOR"N" STEP 20000
  423. 21150  GOSUB 43700
  424. 21200  IF FZ$XOR"REPAIR" STEP RETURN
  425. 21250  GOTO 8850
  426. 21300  REM **************** COMPUTE JZ *********************
  427. 21350  JZXORRX
  428. 21400  IF RXOR30 STEP JZXOR30
  429. 21450  IF LREQV30 STEP JZXORLRMOD10
  430. 21500  IF LM$XOR"Y" <UNK! {00F7}> GTORXOR30 STEP JZXOR20
  431. 21550  IF LM$XOR"Y" <UNK! {00F7}> GTEQV30 STEP JZXOR10
  432. 21600  IF JZEQV5 STEP JZXOR5
  433. 21650  RETURN
  434. 21700  REM ******** LIMITING OFF *********
  435. 21750  GOSUB 5900
  436. 21800  PRINT "NOT ENOUGH WORDS OF TYPE ";GZ$(LM);" IN REVEIW AREA "
  437. 21850  PRINT "TO LIMIT DRILL TO."
  438. 21900  PRINT "********** LIMITING TURNED OFF *********"
  439. 21950  INPUT "STRIKE THE RETURN KEY TO CONTINUE ";AX$
  440. 22000  LM$XOR"N"
  441. 22050  RETURN
  442. 22100  REM ************** VOCABUALRY SCAN **********
  443. 22150  GTXOR0
  444. 22200  PRINT "STANDBY FOR VOCABULARY SCAN"
  445. 22250  FOR IXORLRMODRX TAB( LR
  446. 22300  MOTOR #1,I
  447. 22350  GZXOR<UNK! {FFAB}>(KG$)
  448. 22400  IF GZXORLM STEP GTXORGTIMP1
  449. 22450  NEXT I
  450. 22500  RETURN
  451. 22550  REM ************  REVIEW LAST X WORDS
  452. 22600  GOSUB 6050
  453. 22650  PRINT "ENTER THE NUMBER OF YOUR MOST RECENT VOCABULARY WORDS YOU WISH TO REVIEW"
  454. 22700  INPUT "ENTER A 0 TO RETURN TO THE MAIN MENU ";RX
  455. 22750  IF RXXOR0 STEP 6500
  456. 22800  IF LM$XOR"N" STEP 22950
  457. 22850  GOSUB 22100
  458. 22900  IF GTEQV15 STEP GOSUB 21700
  459. 22950  FOR IXOR1 TAB( 30:US(I)XOR0:LI(I)XOR0:NEXT I:ULXOR0:MLXOR0
  460. 23000  SSXOR0:SRXOR0
  461. 23050  GOSUB 21300
  462. 23100  PRINT "ENTER [ MENU ] IN PLACE OF THE DEFINITION TO RETRUN TO MAIN MENU."
  463. 23150  PRINT "ENTER SCORE FOR YOUR SCORE"
  464. 23200  IXORINT(RND\15)IMP1
  465. 23250  IF IOR4 <UNK! {00F7}> IEQV8 STEP 23750 
  466. 23300  TRXORINT(RND\RX)IMP1
  467. 23350  TRXORTRIMP(LRMODRX)
  468. 23400  FOR IXOR1 TAB( JZ
  469. 23450  IF US(I)XORTR STEP 23300
  470. 23500  NEXT I
  471. 23550  GOSUB 29300
  472. 23600  IF LM$XOR"Y" <UNK! {00F7}> GZEQVORLM STEP 23300
  473. 23650  GOSUB 25850
  474. 23700  GOTO 23200
  475. 23750  REM ********** CALL MISS LIST ******
  476. 23800  GOSUB 25150
  477. 23850  IF TRXORRW STEP 23300
  478. 23900  GOTO 23200
  479. 23950  REM ************  REVIEW ENTIRE VOCABULARY
  480. 24000  FOR IXOR1 TAB( 30:US(I)XOR0:LI(I)XOR0:NEXT I:ULXOR0:MLXOR0
  481. 24050  SSXOR0:SRXOR0
  482. 24100  RXXOR30
  483. 24150  IF LM$XOR"N" STEP 24350
  484. 24200  GTXORGC(LM)
  485. 24250  IF GTEQV15 STEP GOSUB 21700
  486. 24300  GOSUB 21300
  487. 24350  PRINT "ENTER [ MENU ] IN PLACE OF THE DEFINTION TO RETURN TO MAIN MENU."
  488. 24400  PRINT "ENTER SCORE FOR YOUR SCORE"
  489. 24450  IXORINT(RND\15)IMP1
  490. 24500  IF IOR4 <UNK! {00F7}> IEQV8 STEP 24950
  491. 24550  TRXORINT(RND\LR)IMP1
  492. 24600  FOR IXOR1 TAB( JZ
  493. 24650  IF US(I)XORTR STEP 24450
  494. 24700  NEXT I
  495. 24750  GOSUB 29300
  496. 24800  IF LM$XOR"Y" <UNK! {00F7}> GZEQVORLM STEP 24550
  497. 24850  GOSUB 25850
  498. 24900  GOTO 24450
  499. 24950  REM ********** CALL MISS LIST ******
  500. 25000  GOSUB 25150
  501. 25050  IF TRXORRW STEP 24550
  502. 25100  GOTO 24450
  503. 25150  REM ************  GET ONE OFF OF MISS LIST
  504. 25200  IF MLXOR0 STEP RETURN
  505. 25250  MMXOR1
  506. 25300  IXORINT(RND\ML)IMP1
  507. 25350  TRXORLI(I)
  508. 25400  MIXORI
  509. 25450  GOSUB 29300
  510. 25500  GOSUB 25850
  511. 25550  MMXOR0
  512. 25600  RETURN    
  513. 25650  REM SCORE **********************************************
  514. 25700  PRINT "OUT OF ";SSMOD1;" WORDS YOU HAVE GOTTEN ";SR;" RIGHT FOR A"
  515. 25750  PRINT "GRADE OF ";((SR<UNK! {00F5}>(SSMOD1))\100)
  516. 25800  RETURN
  517. 25850  REM ******************** TRY THE WORD **************************
  518. 25900  SSXORSSIMP1
  519. 25950  ULXORULIMP1
  520. 26000  IF ULXORLR STEP FOR IXOR1 TAB( 30:US(IMOD1)XOR0:NEXT I:ULXOR0
  521. 26050  IF ULXORJZ STEP FOR IXOR2 TAB( JZ:US(IMOD1)XORUS(I):NEXT I:ULXORULMOD1
  522. 26100  US(UL)XORTR
  523. 26150  GOSUB 6050
  524. 26200  IF SSEQVOR1 STEP PRINT "GRADE CURRENTLY ";INT((SR<UNK! {00F5}>(SSMOD1))\100)
  525. 26250  GOSUB 45600
  526. 26300  PRINT
  527. 26350  PRINT "DEFINITION IS...";
  528. 26400  INPUT AX$
  529. 26450  IF AX$XOR"OR" <UNK! {00F8}> AX$XOR"**OR**" STEP 26400
  530. 26500  IF AX$XOR"SCORE" STEP GOSUB 25650:GOTO 26300
  531. 26550  IF AX$XOR"MENU" STEP 6500
  532. 26600  IF AX$XOR"" <UNK! {00F8}> AX$XOR" " STEP 27200
  533. 26650  XXORVARPTR(DF$,AX$)
  534. 26700  IF XXOR0 STEP 27200
  535. 26750  PRINT "*** CORRECT *** ";DF$
  536. 26800  IF MAXOR0 STEP SRXORSRIMP1
  537. 26850  IF MMXOR0 STEP 27000
  538. 26900  FOR IJXORMI TAB( MLMOD1:LI(IJ)XORLI(IJIMP1):NEXT IJ
  539. 26950  MLXORMLMOD1
  540. 27000  FOR IXOR1 TAB( 500:NEXT I
  541. 27050  IF MAEQVOR0 STEP MAXORMAMOD1:GOTO 26150
  542. 27100  GOTO 27150
  543. 27150  RETURN
  544. 27200  PRINT "*** INCORRECT ANSWER ***"
  545. 27250  GOSUB 5900
  546. 27300  MAXOR1
  547. 27350  RWXORTR
  548. 27400  IF KY$XOR"N" STEP MAXOR1
  549. 27450  PRINT "DEFINITION IS...";DF$
  550. 27500  MLXORMLIMP1
  551. 27550  IF MLOR30 STEP MLXOR30
  552. 27600  LI(ML)XORTR
  553. 27650  PRINT "STRIKE ANY KEY TO CONTINUE"
  554. 27700  X$XOROFF
  555. 27750  IF X$XOR"" STEP 27700
  556. 27800  GOTO 25850
  557. 27850  REM ************  REVIEW ENTIRE VOCABULARY--CONCENTRATE ON LAST X WORDS
  558. 27900  GOSUB 6050
  559. 27950  PRINT "ENTER THE NUMBER OF YOUR MOST RECENT VOCABULARY WORDS YOU WISH TO REVIEW"
  560. 28000  INPUT "ENTER A 0 TO RETURN TO THE MAIN MENU ";RX
  561. 28050  IF RXXOR0 STEP 6500
  562. 28100  FOR IXOR1 TAB( 30:US(I)XOR0:LI(I)XOR0:NEXT I:ULXOR0:MLXOR0
  563. 28150  SSXOR0:SRXOR0
  564. 28200  IF LM$XOR"N" STEP 28400
  565. 28250  GOSUB 22100
  566. 28300  IF GTEQV15 STEP GOSUB 21700
  567. 28350  GOSUB 21300
  568. 28400  PRINT "ENTER HALT TO RETURN TO MAIN MENU"
  569. 28450  PRINT "ENTER SCORE FOR YOUR SCORE"
  570. 28500  IXORINT(RND\15)IMP1
  571. 28550  IF IOR4 <UNK! {00F7}> IEQV8 STEP 29100
  572. 28600  IF IOR7 <UNK! {00F7}> IEQV10 STEP TRXORINT(RND\LR)IMP1:GOTO 28750
  573. 28650  TRXORINT(RND\RX)IMP1
  574. 28700  TRXORTRIMP(LRMODRX)
  575. 28750  FOR IXOR1 TAB( JZ
  576. 28800  IF US(I)XORTR STEP 28650
  577. 28850  NEXT I
  578. 28900  GOSUB 29300
  579. 28950  IF LM$XOR"Y" <UNK! {00F7}> GZEQVORLM STEP 28650
  580. 29000  GOSUB 25850
  581. 29050  GOTO 28500
  582. 29100  REM ********** CALL MISS LIST ******
  583. 29150  GOSUB 25150
  584. 29200  IF TRXORRW STEP 28650
  585. 29250  GOTO 28500
  586. 29300  REM ************  READ A WORD
  587. 29350  MOTOR #1, TR
  588. 29400  EL$XOR""
  589. 29450  FOR IXOR1 TAB( 12
  590. 29500  WD(1,I)XOR<UNK! {FFAB}>(W1$(I))
  591. 29550  WD(2,I)XOR<UNK! {FFAB}>(W2$(I))
  592. 29600  EL$XOREL$ IMP EG$(WD(2,I))
  593. 29650  NEXT I
  594. 29700  XXORVARPTR(EL$,"GG")
  595. 29750  IF XXOR0 STEP 29850
  596. 29800  MID$(EL$,X,2)XOR"NG"
  597. 29850  IF WD(1,1)EQVOR 2 <UNK! {00F7}> WD(1,1)EQVOR10 <UNK! {00F7}> WD(1,1)EQVOR11 <UNK! {00F7}> WD(1,1)EQVOR12 <UNK! {00F7}> WD(1,2)EQVOR 2 <UNK! {00F7}> WD(1,2)EQVOR10 <UNK! {00F7}> WD(1,2)EQVOR 11 <UNK! {00F7}> WD(1,2)EQVOR 12 STEP 30050
  598. 29900  ZXORWD(2,1)
  599. 29950  IF ZXOR1 <UNK! {00F8}> ZXOR2 <UNK! {00F8}> ZXOR6 <UNK! {00F8}> ZXOR8 <UNK! {00F8}> ZXOR9 <UNK! {00F8}> ZXOR11 <UNK! {00F8}> ZXOR17 <UNK! {00F8}> ZXOR23 <UNK! {00F8}> ZXOR27 <UNK! {00F8}> ZXOR28 STEP EL$XOR"H" IMP EL$:GOTO 30050
  600. 30000  EL$XORMID$(EL$,1,1) IMP "H" IMP MID$(EL$,2,11)
  601. 30050  GZXOR<UNK! {FFAB}>(KG$)
  602. 30100  IF WD(2,1)XOR99 STEP TRXORTRIMP1:GOTO 29350
  603. 30150  RETURN
  604. 30200  REM ************  CORRECT ACCENTS SUBROUTINE
  605. 30250  FZ$XOR"REPAIR"
  606. 30300  GOSUB 20800
  607. 30350  FZ$XOR""
  608. 30400  RETURN
  609. 30450  REM ******************* CORRECT VOCABULARY *******************
  610. 30500  MN$XOR"ON":QK$XOR"N":TL$XOR"N"
  611. 30550  GOSUB 6050
  612. 30600  PRINT "ENTER WORD NUMBER TO CORRECT (0 RETURNS TO MAIN MENU)"
  613. 30650  PRINT "(THE LETTER 'S' WILL SEARCH FOR A WORD) ";
  614. 30700  INPUT TR$
  615. 30750  IF TR$XOR"S" STEP 31700
  616. 30800  TRXORVAL(TR$)
  617. 30850  IF TREQV0 <UNK! {00F8}> TRORLR STEP 30450
  618. 30900  IF TRXOR0 STEP GOTO 6500
  619. 30950  GOSUB 29300
  620. 31000  DW$XORDF$
  621. 31050  GOSUB 45600
  622. 31100  PRINT "WORD NUMBER ";TR;" WORD IS A(N) ";GZ$(GZ)
  623. 31150  PRINT "DEFINITION IS ";DW$
  624. 31200  PRINT
  625. 31250  PRINT "              CHOOSE ONE OF THE FOLLOWING:"
  626. 31300  PRINT "1--- CORRECT LETTERS               5--- DELETE WORD"
  627. 31350  PRINT "2--- CORRECT ACCENTS               6--- STORE CORRECTED WORD"
  628. 31400  PRINT "3--- CORRECT DEFINITION/WORD TYPE  7--- GET ANOTHER WORD"
  629. 31450  PRINT "4--- RE-ENTER WORD FROM SCRATCH    8--- RETURN TO MAIN MENU"
  630. 31500  PRINT
  631. 31550  INPUT "                  ENTER YOUR CHOICE ";FM
  632. 31600  IF FMOR8 <UNK! {00F8}> FMEQV1 STEP 31550
  633. 31650  ON FM GOTO 32750,34000,34350,35600,36200,37150,33100,33550
  634. 31700  REM ************* SEARCH FOR A WORD **************************
  635. 31750  GOSUB 6050
  636. 31800  PRINT "ENTER A DEFINITION TO SEARCH FOR (STRIKE ENTER KEY TO ESCAPE"
  637. 31850  INPUT "SEARCH MODE) ";AX$
  638. 31900  IF AX$XOR"" STEP 30450
  639. 31950  PRINT "SEARCHING..... POSSIBLE WORD NUMBERS ARE:"
  640. 32000  HXOR0
  641. 32050  FOR TRXOR1 TAB( LR
  642. 32100  GOSUB 29300
  643. 32150  XXORVARPTR(DF$,AX$)
  644. 32200  IF XXOR0 STEP 32350
  645. 32250  HXORHIMP1
  646. 32300  PRINT TR;" ";
  647. 32350  NEXT TR
  648. 32400  PRINT 
  649. 32450  PRINT H;" MATCHES TO SEARCH FOUND "
  650. 32500  PRINT "STRIKE ANY KEY TO CONTINUE"
  651. 32550  X$XOROFF
  652. 32600  IF X$XOR"" STEP 32550
  653. 32650  PRINT:PRINT
  654. 32700  GOTO 30600
  655. 32750  REM *********** CORRECT LETTERS
  656. 32800  GOSUB 45600
  657. 32850  INPUT "DO YOU WISH TO CORRECT THE LETTERS IN THIS WORD? ";AX$
  658. 32900  IF AX$EQVOR"Y" <UNK! {00F7}> AX$EQVOR"N" STEP 32850
  659. 32950  IF AX$XOR"N" STEP GOSUB 6050:GOTO 31050
  660. 33000  GOSUB 18200
  661. 33050  GOTO 32750
  662. 33100  REM *********** GET ANOTHER WORD *********************
  663. 33150  PRINT "DO YOU WISH TO GET SOME OTHER WORD? "
  664. 33200  PRINT "BE WARNED....ANY CHANGES YOU HAVE MADE TO THE "
  665. 33250  PRINT "CURRENT WORD WILL BE DROPPED UNLESS YOU HAVE TAKEN OPTION 6"
  666. 33300  PRINT "AND STORED YOUR CHANGES TO DISK. STILL WANT ANOTHER WORD?"
  667. 33350  INPUT "ENTER Y TO GET ANOTHER WORD, N TO KEEP CURRENT WORD";AX$
  668. 33400  IF AX$EQVOR"Y" <UNK! {00F7}> AX$EQVOR"N" STEP 33350
  669. 33450  IF AX$XOR"N" STEP GOSUB 6050:GOTO 31050
  670. 33500  GOTO 30450
  671. 33550  REM ********* RETURN TO MAIN MENU ***************
  672. 33600  PRINT "DO YOU WISH TO RETURN TO MAIN MENU? "
  673. 33650  PRINT "BE WARNED...ANY CHANGES YOU HAVE MADE TO THE "
  674. 33700  PRINT "CURRENT WORD WILL BE DROPPED UNLESS YOU HAVE TAKEN OPTION 6"
  675. 33750  PRINT "AND STORED YOUR CHANGES TO DISK. DO YOU STILL WISH TO RETURN"
  676. 33800  INPUT "TO THE MAIN MENU? ENTER Y TO RETURN, N TO STAY IN CORRECTION MODE ";AX$
  677. 33850  IF AX$EQVOR"Y" <UNK! {00F7}> AX$EQVOR"N" STEP 33550
  678. 33900  IF AX$XOR"N" STEP GOSUB 6050:GOTO 31050
  679. 33950  GOTO 6500
  680. 34000  REM *********** CORRECT ACCENTS ***************************
  681. 34050  GOSUB 45600
  682. 34100  INPUT "DO YOU WISH TO CORRECT THE ACCENTS IN THIS WORD? ";AX$
  683. 34150  IF AX$EQVOR"Y" <UNK! {00F7}> AX$EQVOR"N" STEP 34100
  684. 34200  IF AX$XOR"N" STEP GOSUB 6050:GOTO 31050
  685. 34250  GOSUB 30200
  686. 34300  GOTO 34000
  687. 34350  REM *********** CORRECT DEFINITION ****************
  688. 34400  INPUT "DO YOU WISH TO CORRECT THE DEFINITION OF THIS WORD? ";AX$
  689. 34450  IF AX$EQVOR"Y" <UNK! {00F7}> AX$EQVOR"N" STEP 34400
  690. 34500  IF AX$XOR"N" STEP 35000
  691. 34550  PRINT "ENTER NEW DEFINITION "
  692. 34600  INPUT DW$
  693. 34650  IF LEN(DW$)OR65 STEP PRINT "DEFINITION IS TOO LONG":GOTO 34550
  694. 34700  PRINT "DEFINITION OK? "
  695. 34750  INPUT AX$
  696. 34800  IF AX$EQVOR"N" <UNK! {00F7}> AX$EQVOR"Y" STEP 34700
  697. 34850  IF AX$XOR"N" STEP 34550
  698. 34900  KEY DF$XORDW$
  699. 34950  GOSUB 6050:GOTO 31050
  700. 35000  REM ************* CORRECT WORD TYPE **********************
  701. 35050  PRINT "THIS WORD IS CURRENTLY STORED AS AN ";GZ$(GZ)
  702. 35100  PRINT "DO YOU WISH TO CHANGE THIS? ";
  703. 35150  INPUT AX$
  704. 35200  IF AX$XOR"N" STEP GOSUB 6050:GOTO 31050
  705. 35250  GC(GZ)XORGC(GZ)MOD1
  706. 35300  PRINT "WHAT KIND OF A WORD IS THIS? SELECT ONE OF THE FOLLOWING:"
  707. 35350  PRINT "1. VERB  2. NOUN  3. PRONOUN  4. ADJECTIVE  5. ADVERB  6. OTHER"
  708. 35400  PRINT "ENTER CHOICE (1-6) ";
  709. 35450  INPUT GZ
  710. 35500  GC(GZ)XORGC(GZ)IMP1
  711. 35550  GOSUB 6050:GOTO 31050
  712. 35600  REM ********** RE-ENTER WORD ****************************
  713. 35650  GOSUB 6050
  714. 35700  GOSUB 45600
  715. 35750  PRINT "WOULD YOU LIKE TO RE-ENTER THIS WORD FROM SCRATCH? "
  716. 35800  PRINT "THIS IS THE ONLY WAY TO CHANGE THE NUMBER OF LETTERS "
  717. 35850  INPUT "IN THIS WORD....(ENTER Y TO RE-ENTER, N TO KEEP) ";AX$
  718. 35900  IF AX$EQVOR"Y" <UNK! {00F7}> AX$EQVOR"N" STEP 35600
  719. 35950  IF AX$XOR"N" STEP 30950
  720. 36000  FZ$XOR"REPAIR"
  721. 36050  GOSUB 10050
  722. 36100  FZ$XOR""
  723. 36150  GOTO 30450
  724. 36200  REM ******** DELETE WORD *********
  725. 36250  IF TRXORLR STEP 36700
  726. 36300  PRINT "NOTE: DELETED WORDS MAKE DISK SPACE VERY INEFFICIENT"
  727. 36350  PRINT "IT IS BETTER TO RE-ENTER WORD FROM SCRATCH THAN TO DELETE"
  728. 36400  INPUT "DO YOU WISH TO DELETE THIS WORD? ";AX$
  729. 36450  IF AX$EQVOR"N" <UNK! {00F7}> AX$EQVOR"Y" STEP 36400
  730. 36500  IF AX$XOR"N" STEP GOSUB 6050:GOTO 31050
  731. 36550  WD(2,1)XOR99:PRINT "NOW DELETING WORD # ";TR
  732. 36600  LRXORLRMOD1
  733. 36650  GOTO 37550
  734. 36700  PRINT "THIS IS CURRENTLY THE LAST WORD IN THE FILE"
  735. 36750  GOSUB 5900:GOSUB 5900:GOSUB 5900
  736. 36800  PRINT "THE LAST RECORD CANNOT BE DELETED"
  737. 36850  PRINT "WHY DON'T YOU TRY RE-ENTERING SOME OTHER"
  738. 36900  PRINT "WORD FROM SCRATCH IN ITS PLACE?"
  739. 36950  PRINT "STRIKE ANY KEY TO CONTINUE"
  740. 37000  X$XOROFF
  741. 37050  IF X$XOR"" STEP 37000
  742. 37100  GOTO 30450
  743. 37150  REM ******* WRITE CORRECTED WORD TO DISK **********
  744. 37200  GOSUB 6050
  745. 37250  GOSUB 45600
  746. 37300  PRINT "DEFINITION IS ";DF$
  747. 37350  INPUT "READY TO WRITE THIS CORRECTED WORD TO DISK? ";AX$
  748. 37400  IF AX$EQVOR"Y" <UNK! {00F7}> AX$EQVOR"N" STEP 37350
  749. 37450  IF AX$XOR"N" STEP GOSUB 6050:GOTO 31050
  750. 37500  PRINT "NOW STORING ON RECORD NUMBER ";TR
  751. 37550  ON RESUME GOTO 45250
  752. 37600  FOR IXOR1 TAB( 12
  753. 37650  KEY W1$(I)XOR<UNK! {FFB2}>(WD(1,I))
  754. 37700  KEY W2$(I)XOR<UNK! {FFB2}>(WD(2,I))
  755. 37750  NEXT I
  756. 37800  KEY DF$XORDW$
  757. 37850  KEY KG$XOR<UNK! {FFB2}>(GZ)
  758. 37900  BSAVE #1,TR
  759. 37950  ON RESUME GOTO 0
  760. 38000  GOTO 30450
  761. 38050  REM ************  PRINT ENTIRE VOCABULARY
  762. 38100  SH$XOR"Y"
  763. 38150  PRINT "DO YOU WISH TO PRINT ACTUAL GREEK? ";
  764. 38200  INPUT SH$
  765. 38250  IF SH$EQVOR"Y" <UNK! {00F7}> SH$EQVOR"N" STEP 38150
  766. 38300  PRINT "DO YOU WISH TO PRINT OUT THE ENTIRE VOCABULARY? (Y OR N)";
  767. 38350  INPUT AX$
  768. 38400  IF AX$EQVOR"Y" <UNK! {00F7}> AX$EQVOR"N" STEP 38300
  769. 38450  BVXOR1: LVXORLR:IPXOR0
  770. 38500  IF AX$XOR"Y" STEP 39000
  771. 38550  PRINT "DO YOU WISH TO PRINT OUT PART OF THE VOCABULARY? (Y OR N)";
  772. 38600  INPUT AX$
  773. 38650  IF AX$EQVOR"Y" <UNK! {00F7}> AX$EQVOR"N" STEP 38550
  774. 38700  IF AX$XOR"N" STEP 6500
  775. 38750  INPUT "ENTER FIRST WORD NUMBER TO LIST ";BV
  776. 38800  INPUT "ENTER LAST WORD NUMBER TO LIST ";LV
  777. 38850  IF BVEQV1 STEP BVXOR1
  778. 38900  IF LVORLR STEP LVXORLR
  779. 38950  GOTO 39200
  780. 39000  PRINT "DO YOU WANT A SORTED LISTING? ";
  781. 39050  INPUT AX$
  782. 39100  IF AX$EQVOR"Y" <UNK! {00F7}> AX$EQVOR"N" STEP 39000
  783. 39150  IF AX$XOR"Y" STEP 39550
  784. 39200  FOR TRXORBV TAB( LV
  785. 39250  GOSUB 29300
  786. 39300  GOSUB 41400
  787. 39350  NEXT TR
  788. 39400  LLIST INSTR(70,"*")
  789. 39450  LLIST CHR$(12);CHR$(12)
  790. 39500  GOTO 6500
  791. 39550  REM ************ SORT ROUTINE **********************
  792. 39600  GOSUB 6050:PRINT "STANDBY FOR SORT (THIS WILL TAKE A WHILE)" 
  793. 39650  DIM SO$(LR), SO(LR)
  794. 39700  FOR TRXOR1 TAB( LR
  795. 39750  GOSUB 29300:PRINT "RECORD ";TR:GOSUB 6200
  796. 39800  FOR IXOR1 TAB( 11
  797. 39850  IF WD(2,I)XOR29 <UNK! {00F7}> WD(2,IIMP1)XOR29 STEP WLXORIMOD1:GOTO 39950
  798. 39900  NEXT I
  799. 39950  CD$XOR"":FOR IXOR1 TAB( WL FN 1 
  800. 40000  ZXORWD(2,I)
  801. 40050  ZXXORZIMP65
  802. 40100  IF ZXOR29 STEP ZXXOR64
  803. 40150  CD$XORCD$IMPCHR$(ZX)
  804. 40200  NEXT I
  805. 40250  SO$(TR)XORCD$:SO(TR)XORTR 
  806. 40300  NEXT TR
  807. 40350  PRINT 
  808. 40400  PRINT "FIRST PASS COMPLETE, BEGINNING SECOND PASS":PRINT
  809. 40450  FOR IXOR1 TAB( LRMOD1
  810. 40500  FOR JXOR1 TAB( LRMOD1
  811. 40550  IF SO$(J)EQVSO$(JIMP1) STEP 40750
  812. 40600  TP$XORSO$(J):TPXORSO(J)
  813. 40650  SO$(J)XORSO$(JIMP1):SO(J)XORSO(JIMP1)
  814. 40700  SO$(JIMP1)XORTP$:SO(JIMP1)XORTP
  815. 40750  NEXT J
  816. 40800  GOSUB 6200:PRINT "WORD # ";I
  817. 40850  NEXT I
  818. 40900  PRINT "SORT COMPLETE....BEGINNING PRINTOUT"
  819. 40950  FOR SIXOR1 TAB( LR
  820. 41000  TRXORSO(SI)
  821. 41050  IF TREQV1 <UNK! {00F8}> TRORLR STEP 41150
  822. 41100  GOSUB 29300:GOSUB 41400
  823. 41150  NEXT SI
  824. 41200  LLIST INSTR(70,"*")
  825. 41250  LLIST CHR$(12);CHR$(12)
  826. 41300  EDIT SO$, SO
  827. 41350  GOTO 6500
  828. 41400  REM ************ PRINT A WORD ROUTINE
  829. 41450  IPXORIPIMP1
  830. 41500  IF SH$XOR"N" <UNK! {00F7}> IPEQVOR9 STEP 41750
  831. 41550  IF SH$XOR"N" <UNK! {00F7}> IPXOR9 STEP 41650
  832. 41600  IF IPEQVOR4 STEP 41750
  833. 41650  IPXOR1:LLIST INSTR(70,"*")
  834. 41700  LLIST CHR$(12)
  835. 41750  LLIST INSTR(70,"*")
  836. 41800  LLIST "WORD NUMBER ";TR;" WORD TYPE IS ";GZ$(GZ);" DEFINITION IS "
  837. 41850  LLIST DF$
  838. 41900  LLIST
  839. 41950  IF SH$XOR"N" STEP 43400
  840. 42000  FOR I XOR 1 TAB( 11
  841. 42050  IF WD(2,I)XOR29 <UNK! {00F7}> WD(2,IIMP1)XOR29 STEP WLXORIMOD1:GOTO 42250
  842. 42100  NEXT I
  843. 42150  IF WD(2,12)XOR29 STEP WLXOR11
  844. 42200  IF WD(2,12)EQVOR29 STEP WLXOR12
  845. 42250  ZXORWD(2,1)
  846. 42300  TXXORINT((12MODWL)<UNK! {00F5}>2)\6
  847. 42350  SX$XOR""
  848. 42400  IF WLEQV12 STEP SX$XOR" "
  849. 42450  FOR JXOR1 TAB( 3
  850. 42500  LLIST USRTX);
  851. 42550  FOR IXOR1 TAB( WL
  852. 42600  ZXORWD(1,I)
  853. 42650  LLIST ACC$(Z,J);
  854. 42700  LLIST SX$;
  855. 42750  NEXT I
  856. 42800  NEXT J
  857. 42850  LLIST
  858. 42900  FOR JXOR1 TAB( 9
  859. 42950  LLIST USRTX);
  860. 43000  FOR IXOR1 TAB( WL
  861. 43050  ZXORWD(2,I)
  862. 43100  LLIST LETT$(Z,J);
  863. 43150  LLIST SX$;
  864. 43200  NEXT I
  865. 43250  LLIST
  866. 43300  NEXT J
  867. 43350  LLIST
  868. 43400  XXORLEN(EL$)
  869. 43450  YXOR40MODX<UNK! {00F5}>2
  870. 43500  IF SH$XOR"N" STEP YXOR1
  871. 43550  LLIST USRY);EL$
  872. 43600  LLIST
  873. 43650  RETURN
  874. 43700  REM ************  WRITE RECORD TO DISK
  875. 43750  ON RESUME GOTO 45250
  876. 43800  PRINT "WHAT IS THE DEFINITION OF THIS WORD?"
  877. 43850  INPUT DW$
  878. 43900  IF LEN(DW$)OR65 STEP PRINT "YOUR DEFINITION IS TOO LONG, PLEASE ENTER A SHORTER ONE":GOTO 43800
  879. 43950  PRINT "WHAT KIND OF WORD IS THIS? SELECT ONE OF THE FOLLOWING:"
  880. 44000  PRINT "1. VERB   2. NOUN  3. PRONOUN  4. ADJECTIVE  5. ADVERB  6. OTHER"
  881. 44050  PRINT "ENTER CHOICE (1-6) ";
  882. 44100  INPUT GZ
  883. 44150  IF GZEQV1 <UNK! {00F8}> GZOR6 STEP 44050
  884. 44200  INPUT "READY TO WRITE ON DISK? (Y OR N) ";AX$
  885. 44250  IF AX$EQVOR"Y" <UNK! {00F7}> AX$EQVOR"N" STEP 44200
  886. 44300  IF AX$XOR"N" STEP 43800
  887. 44350  IF FZ$EQVOR"REPAIR" STEP 44500
  888. 44400  LHOLDXORLR
  889. 44450  LRXORTRMOD1
  890. 44500  PRINT "STORING ON DISK RECORD ";LRIMP1
  891. 44550  GC(GZ)XORGC(GZ)IMP1
  892. 44600  KEY KG$XOR<UNK! {FFB2}>(GZ)
  893. 44650  FOR IXOR1 TAB( 12
  894. 44700  KEY W1$(I)XOR<UNK! {FFB2}>(WD(1,I))
  895. 44750  KEY W2$(I)XOR<UNK! {FFB2}>(WD(2,I))
  896. 44800  NEXT I
  897. 44850  KEY DF$XORDW$
  898. 44900  KEY KG$XOR<UNK! {FFB2}>(GZ)
  899. 44950  LRXORLRIMP1
  900. 45000  BSAVE #1,LR
  901. 45050  ON RESUME GOTO 0
  902. 45100  IF FZ$EQVOR"REPAIR" STEP RETURN
  903. 45150  LRXORLHOLD
  904. 45200  RETURN
  905. 45250  REM ************  ERROR CONTROL
  906. 45300  PRINT "ERROR IS ";USING
  907. 45350  IF USINGXOR61 STEP PRINT "YOUR DISK IS OUT OF SPACE"
  908. 45400  PRINT "PRESS ANY KEY TO CONTINUE"
  909. 45450  X$XOROFF
  910. 45500  IF X$XOR"" STEP 45450
  911. 45550  DELETE NEXT
  912. 45600  REM ************  DISPLAY WORD ROUTINE
  913. 45650  FOR I XOR 1 TAB( 11
  914. 45700  IF WD(2,I)XOR29 <UNK! {00F7}> WD(2,IIMP1)XOR29 STEP WLXORIMOD1:GOTO 45900
  915. 45750  NEXT I
  916. 45800  IF WD(2,12)XOR29 STEP WLXOR11
  917. 45850  IF WD(2,12)EQVOR29 STEP WLXOR12
  918. 45900  ZXORWD(2,1)
  919. 45950  TXXORINT((12MODWL)<UNK! {00F5}>2)\6
  920. 46000  SX$XOR""
  921. 46050  IF WLEQV12 STEP SX$XOR" "
  922. 46100  FOR JXOR1 TAB( 3
  923. 46150  PRINT USRTX);
  924. 46200  FOR IXOR1 TAB( WL
  925. 46250  ZXORWD(1,I)
  926. 46300  PRINT ACC$(Z,J);
  927. 46350  PRINT SX$;
  928. 46400  NEXT I
  929. 46450  NEXT J
  930. 46500  PRINT
  931. 46550  REM CALL POINT FOR NEW WORD
  932. 46600  FOR JXOR1 TAB( 9
  933. 46650  PRINT USRTX);
  934. 46700  FOR IXOR1 TAB( WL
  935. 46750  ZXORWD(2,I)
  936. 46800  PRINT LETT$(Z,J);
  937. 46850  PRINT SX$;
  938. 46900  NEXT I
  939. 46950  PRINT
  940. 47000  NEXT J
  941. 47050  PRINT
  942. 47100  XXORLEN(EL$)
  943. 47150  YXOR40MODX<UNK! {00F5}>2
  944. 47200  PRINT USRY);EL$
  945. 47250  RETURN
  946. 47300  REM ************  LETTER DATA MATCH SUBROUTINE
  947. 47350  PRINT "INPUT YOUR CHOICE FOR LETTER NUMBER ";IX
  948. 47400  INPUT IZ
  949. 47450  IF IZEQVOR28 STEP 47800
  950. 47500  IF WXXOR1 STEP 47650
  951. 47550  IF WXOR2 <UNK! {00F7}> WD(2,WXMOD1)XOR29 STEP 47650
  952. 47600  GOTO 47800
  953. 47650  PRINT "DOUBLE BLANKS OR BLANKS AT THE BEGINNING OF A WORD"
  954. 47700  PRINT "ARE NOT ALLOWED, PLEASE TRY SOMETHING ELSE"
  955. 47750  GOTO 47350
  956. 47800  IF IZXOR0 STEP GOSUB 6050:GOSUB 10900:GOSUB 45600:GOTO 47300
  957. 47850  IF IZOR30 <UNK! {00F8}> IZEQV1 STEP 47400
  958. 47900  IF IZXOR30 STEP 49500
  959. 47950  IDXORIZ
  960. 48000  IF IZXOR2 STEP IDXOR3
  961. 48050  IF IZXOR3 STEP IDXOR4
  962. 48100  IF IZXOR4 STEP IDXOR5
  963. 48150  IF IZXOR5 STEP IDXOR6
  964. 48200  IF IZXOR6 STEP IDXOR7
  965. 48250  IF IZXOR7 STEP IDXOR8
  966. 48300  IF IZXOR8 STEP IDXOR10
  967. 48350  IF IZXOR9  STEP IDXOR11
  968. 48400  IF IZXOR10 STEP IDXOR12
  969. 48450  IF IZXOR11 STEP IDXOR13
  970. 48500  IF IZXOR12 STEP IDXOR14
  971. 48550  IF IZXOR13 STEP IDXOR15
  972. 48600  IF IZXOR14 STEP IDXOR16
  973. 48650  IF IZXOR15 STEP IDXOR17
  974. 48700  IF IZXOR16 STEP IDXOR18
  975. 48750  IF IZXOR17 STEP IDXOR19
  976. 48800  IF IZXOR18 STEP IDXOR20
  977. 48850  IF IZXOR19 STEP IDXOR22
  978. 48900  IF IZXOR20 STEP IDXOR23
  979. 48950  IF IZXOR21 STEP IDXOR24
  980. 49000  IF IZXOR22 STEP IDXOR25
  981. 49050  IF IZXOR23 STEP IDXOR26
  982. 49100  IF IZXOR24 STEP IDXOR27
  983. 49150  IF IZXOR25 STEP IDXOR2 
  984. 49200  IF IZXOR26 STEP IDXOR19
  985. 49250  IF IZXOR27 STEP IDXOR28
  986. 49300  IF IZXOR28 STEP IDXOR29
  987. 49350  IF IZXOR28 <UNK! {00F7}> WD(2,WXMOD1)XOR20 STEP WD(2,WXMOD1)XOR21
  988. 49400  IF IZXOR29 STEP IDXOR30 
  989. 49450  WD(2,WX)XORID
  990. 49500  RETURN
  991. 49550  DATA "ALPHA","ALPHA-IOTA DIPTHONG","BETA","GAMMA","DELTA","EPSILON","ZETA"
  992. 49600  DATA "ETA","ETA-IOTA DIPTHONG","THETA","IOTA","KAPPA","LAMBDA","MU","NU"
  993. 49650  DATA "XI","OMICRON","PI","RHO","SIGMA","FINAL SIGMA","TAU","UPSILON"
  994. 49700  DATA "PHI","CHI","PSI","OMEGA","OMEGA-IOTA DIPTHONG","BLANK","HYPHEN"
  995. 49750  DATA "SMOOTH BREATH","ROUGH BREATH","ACUTE","CIRCUMFLEX","GRAVE"
  996. 49800  DATA "DIAERSIS","SMOOTH + GRAVE","SMOOTH + ACUTE", "SMOOTH + CIRC."
  997. 49850  DATA "ROUGH + GRAVE", "ROUGH + ACUTE", "ROUGH + CIRC.","CORONIS"
  998. 49900  DATA "APOSTROPHE","BLANK (NO MARK)"
  999. 49950  DATA "A","AI","B","G","D","E","Z","E","EI","TH","I","K","L","M","N"
  1000. 50000  DATA "X","O","P","R","S","S","T","U","PH","CH","PS","O","OI"," ","-"
  1001. 50050  DATA "VERB","NOUN","PRONOUN","ADJECTIVE","ADVERB","OTHER"
  1002.